La mayoría de las entrevistas de programación de tecnología de primer nivel plantean problemas de diseño orientado a objetos.

Esto es lo que es y cómo abordarlos:

Los problemas de diseño orientado a objetos le piden que represente un sistema dado (por ejemplo, un sistema de estacionamiento o una red social) en términos de clases, propiedades y relación de clases entre sí.

No hay una respuesta correcta.

1. Reúne los requisitos

El problema se mantiene vago a propósito. Su primer trabajo es hacer preguntas aclaratorias y comprender bien el enunciado del problema.

Consejo profesional: siga creando una lista escrita de requisitos.

Si se le pide que cree un OOD de redes sociales, puede hacer preguntas como:

- ¿Pueden los usuarios dar me gusta, comentar, publicar?

- ¿La amistad es mutua (como facebook) o unidireccional (como instagram)?

- ¿Qué propiedades de un Usuario queremos almacenar?

Estas respuestas darán forma a tus clases y sus relaciones.

2. Averiguar las clases básicas y sus funcionalidades, y discutirlo con el entrevistador.

En nuestro caso, puedes tener estas clases básicas:

- Usuario

- Correo

- Comentario

3. El siguiente paso es comenzar a construir relaciones entre clases.

Por ejemplo:

La publicación puede ser de 3 tipos: ImagePost, VideoPost, TextOnlyPost. La publicación puede tener 3 clases secundarias. (Herencia)

Las publicaciones tienen al usuario como autor y los usuarios tienen a otros usuarios como amigos (asociación)

4. El último paso es escribir y definir claramente todas las clases y propiedades que ha discutido con el entrevistador. Por ejemplo, la clase de usuario final puede verse así:

Usuario

- nombre: cadena

- ID de usuario: cadena

- amigos: Usuario[]

- publicaciones: publicación[]